以 AX Register 來舉例,在不同位元下的 AX
一般用途暫存區(General Purpose Register ; GPR),可分為 RAX、RBX、RCX、RDX、R8~R15。
稍微來介紹一下常見的暫存器(64位元):
這邊簡單舉幾個常見的 Assembly 的 OP Code(Operation Code)
Assembly C 語言
----------------------------------- -----------------------------------
push rbp push(rbp);
mov rbp,rsp rbp = rsp;
sub rsp,0x20 rsp -= 0x20;
call 401710 f_401710();
lea rcx,[rip+0x2a8c] rcx = rip + 0x2a8c;
call 402c40 f_402c40();
mov eax,0x0 eax = 0;
add rsp,0x20 rsp += 0x20;
pop rbp pop(&rbp);
ret return;
順帶一提,X86 架構的組語表式方式,其實分為「Intel 格式」和「AT&T 格式」這兩種。
OpCode | Opearand
-------|---------
mov | eax,0xA
push | 0x0
pop | rax
OpCode | Opearand
-------|---------
mov | $0xA,%eax
push | $0x0
pop | %rax